Data storage is most economically provided by a storage system including a storage controller and a redundant array of data storage devices such as a redundant array of inexpensive disks (RAID). For servicing a large number of network clients, a file server is interposed between the network clients and the storage system for authenticating the network client requests and for mapping the network client requests to storage addresses in the storage system.
To improve read/write access performance and enhance reliability, multiple data paths are provided between the file server and the storage array, and path management techniques are used to distribute storage access requests from the file server over the multiple data paths between the file server and the storage array. Traditionally, a system administrator has pre-planned the configuration of the storage array into logical units of storage (LUNs), the concatenation of the LUNs into meta-LUNs, and the creation of the file systems upon the meta-LUNs so that network client access to one or more file systems will spread the I/O over the available data paths between the file server and the storage array controller. Sometimes a significant load imbalance would occur in this environment. When a significant load imbalance would occur, the system administrator would change the assignment of the LUNs to the storage controller paths, or migrate files in the file system to a new file system built upon a meta-LUN having a different configuration.
More recently, file servers have been provided with an automatic and dynamic load balancing facility for distributing network client I/O requests across all available paths from the server to the storage devices that may service the I/O requests. For example, EMC Corporation has sold a PowerPath® load balancing facility in the form of a software layer between the file system manager layer and the SCSI device driver layer in the file server. The PowerPath® load balancing facility directs each I/O request to a selected port of the storage system based on a pre-selected one of four load balancing policies. The system administrator can chose an adaptive policy (the default policy), a round-robin policy, a least I/Os policy, or a least-blocks policy. The adaptive policy is to select the path on the basis of path load (queue with the shortest depth in time) and device priority. The round-robin policy selects the next available path in rotation. The least I/Os policy selects the path with the fewest pending I/O requests. The least blocks policy selects the path with the fewest pending blocks of I/O data.
In a storage system having two separate service processors, such as the EMC Corporation CLARiiON® storage system, for bandwidth, it was recommended that the disk groups used should be dedicated (no other LUNs contending for access) and the LUNs making up a meta-LUN or host volume could be in the separate service processors in order to distribute load across storage-system resources and to maximize port bandwidth. In this case the host would use two host bus adapters (HBAs), each of which is zoned to a single port on each service processor. It was further recommended that if available on the host operating system, the EMC Corporation PowerPath® load balancing facility should always be used, whether for a single-attach system through a switch or in a fully redundant system. See EMC CLARiiON Best Practices for Fibre Channel Storage, Engineering White Paper, pages 11-14, Mar. 16, 2004, EMC Corporation, Hopkinton, Mass.